/**
 * Copyright 2017, Google, Inc.
 * Licensed under the Apache License, Version 2.0 (the "License")
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

'use strict';

const assert = require('power-assert').customize({
  output: {
    maxDepth: 2
  }
});
const sinon = require('sinon');

global.assert = assert;
global.sinon = sinon;
global.assert.errorType = (err, code, message, details = []) => {
  assert(err.code === code);
  assert(err.message === message);
  assert((err.details || []).length === details.length);
  details.forEach((detail, i) => {
    assert(err.details[i]);
    assert(err.details[i].typeUrl.includes(detail));
  });
};
